namespace CppAst;

public class TypeUtil
{
    public static CppType GetArrayElementType(CppArrayType cppType)
    {
        if (cppType.ElementType is CppArrayType elementType)
        {
            return GetArrayElementType(elementType);
        }

        return cppType.ElementType;
    }

    public static string GetArrayDimension(CppType cppType)
    {
        if (cppType is CppArrayType cppArrayType)
        {
            if (cppArrayType.Size == -1)
            {
                return GetArrayDimension(cppArrayType.ElementType) + "[]";
            }
            else
            {
                return GetArrayDimension(cppArrayType.ElementType) + $"[{cppArrayType.Size}]";
            }
        }
        else
        {
            return "";
        }
    }
}